package org.atlantis.grosbeak.pot.mapper;

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 对于数据库中查询出来的一行数据中的字段进行映射。
 * 
 * @author <a href="mailto:seenoevil.cn@gmail.com">SeeNoEvil</a>
 * 
 * @param <T>
 */
public interface FieldMapper<T> {

	/**
	 * 得到字段的类型。
	 * 
	 * @return
	 */
	int[] getTypes();

	/**
	 * 映射字段的数据。
	 * 
	 * @param rs
	 *            数据库查询的结果。
	 * @param type
	 *            字段的类型。
	 * @param column
	 *            字段名。
	 * @param nullable
	 *            是否可以为空。
	 * @return 映射的结果。
	 * @throws SQLException
	 */
	T mapField(ResultSet rs, int type, String column, boolean nullable)
			throws SQLException;
}
